Location-Based Athlete Pacing With Biofeedback Systems And Methods

ABSTRACT

Systems and methods provide location-based athlete pacing with biofeedback. A goal pace profile based upon historical activity records of one or more athletes is determined. The goal pace profile defines a goal of a user. A mobile computing device determines a current activity of the user and compares the current activity to the goal pace profile to generate real-time status and coaching cues during the current activity.

RELATED APPLICATIONS

This Application claims priority to U.S. Patent Application Ser. No. 61/878,542, filed Sep. 16, 2013, and is incorporated herein by reference.

BACKGROUND

Some athletes love to compete, and all athletes improve through timely coaching on their performance and/or by being able to learn from and mimic the techniques of others. Competition events traditionally take place on a pre-surveyed track or route with fixed or staggered start times.

SUMMARY OF THE INVENTION

With the availability of cost-effective networking, data storage, and positioning technology, athletes may compete against a previous activity record from themselves or others, attain immediate feedback on their performance, learn from others by mimicking their approach to completing an activity, and receive mentoring and coaching based upon recorded activities of others.

A system and series of methods provide location-based athlete pacing with biofeedback to provide status updates and coaching cues including auditory, visual, haptic, vibrational, and shock. The system compares the athlete's current performance to a goal pace profile stemming from one or more other historical or theoretical activity records. For example the system may consist of a display or a series of indicator lamps, and/or audio channel with a speaker placed near the person or in the ear. Historical activity records are drawn from the individual athlete's history, or from the records of other athletes. Theoretical activity records are calculated either onboard or cloud-based by performing numerical analysis on historical activity records of the individual athlete and/or of other athletes under similar conditions. Optionally, theoretical activity records may be defined by the user specifying a route and entering one or more goals (e.g., pace, heart rate, and cadence) for the route. To clarify, the actual activity progress is cued against a goal pace profile. The goal pace profile may be one and the same as a theoretical activity record. However, the theoretical activity record is based upon processing of historical activity records but may become the goal pace profile for the user, or may be tweaked by the user to become the goal pace profile.

In addition to helping athletes compete, the system mentors and/or coaches them based upon the previous work of others. So rather than a competitive athlete trying to beat someone else's result, the same system can help a non-competitive athlete identify a new personal goal by considering what results have been realized by other similar athletes.

In one embodiment, a method provides location-based athlete pacing with biofeedback. A goal pace profile defining a performance goal of a user for a route segment is determined. A performance of the user is determined within a mobile computing device, and the performance is compared to the goal pace profile to generate real-time status and coaching cues during the performance.

In another embodiment, a software product has instructions, stored on non-transitory computer-readable media, wherein the instructions, when executed by a digital processor, perform steps for location-based athlete pacing with biofeedback. The software product includes instructions for determining a goal pace profile defining a performance goal of a user for a route segment; instructions for determining a performance of the user; instructions for determining a segment time indicative of a period for the route segment; instructions for determining a segment distance indicative of a distance traveled by the user in the route segment; instructions for determining a target time based upon the goal pace profile and the segment distance; and instructions for comparing the target time to the segment time to generate real-time status and coaching cues.

In another embodiment, a system provides location-based athlete pacing with biofeedback. The system includes a processor, a location device for determining a location of the system, and a non-transitory memory. The non-transitory memory stores machine readable instructions that when executed by the processor perform the steps of: determining a goal pace profile based upon a historical activity record of an athlete, the goal pace profile defining a performance goal of a user of the system; determining a performance of the user based upon the location; and comparing the performance to the goal pace profile to generate real-time status and coaching cues for the user during the performance.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows one exemplary system for location-based athlete pacing with biofeedback, in an embodiment.

FIGS. 2A and 2B show exemplary social media screen shots illustrating information shared by a sharing interface of the mobile device of FIG. 1, in an embodiment.

FIG. 3 is a flowchart illustrating one exemplary method for location-based pacing with biofeedback, in an embodiment.

FIG. 4 is a map illustrating route segments of an exemplary route taken by a user of the system of FIG. 1, in an embodiment.

FIG. 5 shows the pacing engine of FIG. 1 in further exemplary detail, illustrating modules for pacing each selected route segment, in an embodiment.

FIG. 6 is a flowchart illustrating one exemplary method for segment based pacing with biofeedback, in an embodiment.

DETAILED DESCRIPTION OF THE EMBODIMENTS Definitions

Route—A data set that describes the geographic (latitude, longitude, altitude) starting, and ending point, and possibly also waypoints of a given activity, or a set of fitness equipment settings and duration in order to simulate such waypoints. For example a route might describe the path taken to run or walk North across the East sidewalk of the Golden Gate Bridge. A route may contain any number of cyclical segments, with potential for each cyclical segment to be travelled for multiple laps. A route may also have associated with it a “toughness factor” that describes the impact of the route's terrain on the athlete's ability to traverse it.

Route Segment—A data set that describes the geographic starting, ending, and waypoints of any subset of a route, or a set of fitness equipment settings and duration in order to simulate such waypoints. For example a route segment might describe a portion of the Golden Gate Bridge route above beginning at the middle point of the bridge and extending to the observation point at the North end. A route segment may also have associated with it a “toughness factor” that describes the impact of the route's terrain on the athlete's ability to traverse it.

Route or Route Segment Toughness Factor—An indicator that represents the difficulty posed to the athlete in traversing a given route or route segment. The toughness factor may be calculated by examining the performance of a population of athletes on the particular route or route segment versus other routes or route segments with similar elevation profiles. The toughness factor quantifies the impact of irregular terrain, obstacles such as brush, etc. on the athlete's ability to traverse.

Activity Record—A data set that describes any of the route position epochs (latitude, longitude, and altitude), conditions (temperature, humidity, barometric pressure, wind speed, precipitation, visibility, etc.), execution, and biofeedback response (pace, cadence, power output, heart rate, breathing rate, fatigue, sweat, blood glucose Heart Rate Variability (HRV), R wave to R wave interval (R-R interval), fitness equipment data, etc.), of a given activity. For example, an activity record might describe the epoch-by-epoch progress of a 36 year old, 145 lb. female running North across the East sidewalk of the Golden Gate Bridge on Sep. 1, 2013 beginning at 11:05 am, with an ambient temperature of 85 degrees Fahrenheit, along with the woman's heart rate record and R-R interval data throughout the activity. An activity consists of one or more activity types that include but are not limited to the following: running, cycling, walking, hiking, rowing, kayaking, motocross racing, Nordic skiing, downhill skiing, and swimming. When the route involves multiple laps of a cyclical segment, an activity record may capture lap-to-lap variation of that segment due to athlete body fatigue or possible deterioration of the route. An activity may not have any route associated with it, for example playing field or rink sports, aerobic or anaerobic training, fitness dance, etc.

Activity Record Segment—A data set that describes any of the route position epochs, conditions, execution, and biofeedback response of a route segment, or a contiguous portion of an activity record having no associated route. For example, an activity record segment might describe a portion of the Golden Gate Bridge activity record (above) beginning at the middle point of the bridge and extending to the observation point at the North end.

Activity Quotient—A number that represents the overall capability level of an athlete, determined empirically by examining the performance of the athlete across a significant number of routes or route segments versus other athletes on those same routes or route segments.

Pace Profile—A function or data set that describes the realized athlete's pace over time and/or distance for a given route or segment thereof.

Goal Pace Profile—A function or data set that describes the athlete's desired pace over time and/or distance for a given route or segment thereof.

Lap Profile—A discrete function or data set that describes the athlete's realized pace of each lap across all laps traversed for a route.

FIG. 1 shows one exemplary system 100 for location-based athlete pacing with biofeedback. The terms “user” and “athlete” may be used interchangeably herein, and the user may be an athlete. System 100 includes a mobile device 102 that has a non-transitory memory 104 and a processor 106. Mobile device 102 is for example one of a smart phone, a multimedia device, a smart watch, or any other similar mobile computing device. On certain embodiments, mobile device 102 is a device dedicated to operation within system 100. For example, mobile device 102 is a self-contained computing device that may be carried by a person or attached to a vehicle operated by a person. In an alternative embodiment, mobile device 102 includes other functionality for use by external to system 100. In one example, mobile device 102 is a smart phone carried or worn by a person.

Memory 104 is shown storing software 108 that comprises machine-readable instructions that when executed by processor 106 control mobile device 102 to provide functionality described herein. Software 108 includes a credibility auditor 110, a pacing engine 112, a monitoring engine 114, a goal selection interface 116, an activity record generator 118, an activity manager 120, a user interface 122, and a sharing interface 124. Memory 104 also stores an activity record database 130 that includes at least one activity record 132.

Mobile device 102 also includes a locator 140 that operates to determine a location and/or position of mobile device 102. Location device 140 determines accurate instantaneous position of itself, based upon steady or intermittent measurements from one or more of a Global Positioning System (GPS), cellular beacon identifiers, cellular beacon signal strength, GPS pseudolites, WiFi received signal strength indication (RSSI), any wireless network of surveyed nodes, pool turnaround, radio-frequency identification (RFID) sensors (e.g. ChampionChip), stride or wheel rotation sensors, altimeter, compass, or any combination of one or more of the above approaches. In one embodiment, locator 140 is external to mobile device 102 and sends location information to mobile device 102 via wireless interface 150. For example, locator 140 may represent a body-worn GPS pod.

Mobile device 102 also includes a wireless interface 150 that communicates with one or more of an interface device 160 (e.g., a control, notification and cueing human interface device such as the Sportiiiis by 4iiii Innovations Inc.). Wireless interface 150 may implement one or more of Bluetooth, Ant+, NFC, and other wireless protocols that enable communication between mobile device 102 and interface device 160 and optionally with one or more biofeedback sensors 170. Interface device 160 may represent one or both of: a heads-up display and a wrist watch. Interface device 160 may be integral with mobile device 102 and include a display, an audio system (headphones/speaker/Bluetooth audio/Airplay), and vibrator. In one embodiment, mobile device 102 and interface device 160 are configured as one of a wrist watch and a heads-up display. Device 102 may also communicate with other devices, such as BLE/Bluetooth headset to provide audio indications.

In one embodiment, interface device 160 is implemented within a bike computer and/or a rowing cox display.

Biofeedback sensors 170 may include discrete and/or integrated sensors that provide biofeedback monitoring including but not limited to pace, cadence, power output, heart rate, breathing rate, fatigue, sweat, blood glucose, etc. For example, biofeedback sensors 170 may represent bridging devices such as the Viiiiva dual heart rate monitor from 4iiii Innovations Inc. that operates to bridge sensor data across multiple communication protocols.

Activity manager 120, when executed by processor 106, operates to manage access to activity record database 130, storing activity records for an athlete (i.e., a user of mobile device 102) or of other people or organizations. For example, activity record database 130 may store activity records 132 from friends, club or group members, and celebrities. Activity manager 120 allows the user to select activity record 132 from external sources (e.g., via wireless interface 150 and/or a wired interface such as USB—not shown) and store activity record 132 within activity record database 130 for use within mobile device 102. In one example of operation, activity manager 120 allows activity record 132 to be selected and downloaded from an activity record database 184 of a server 182 located within the cloud 180. Activity manager 120 may for example allow the user to search for activity records 132 based upon one or more of a particular route segment, a particular athlete, a friend, and so on.

Activity manager 120 may also calculate, maintain, and publish (e.g., in cooperation with sharing interface 124) within activity record database 130, athlete activity quotient 135 that is a number representing an overall capability level of the user of mobile device 102 or of some other athlete. In one embodiment, server 182 calculates, maintains, and publishes activity quotients for athletes who are not users of mobile device 102. Activity quotient 135 may be calculated in other modules without departing from the scope hereof. Activity manager 120 determines or adjusts activity quotient 135 empirically by examining the performance of the athlete across a significant number of routes or route segments in comparison to other athletes performing, or who have performed, on those same routes and/or route segments, and may publish activity quotient 135 to one or more databases (e.g., database 184).

Activity manager 120 may also calculate and maintain, within activity record database 130, a route toughness factor that is a number representing an overall difficulty level of a given route or route segment. The route toughness factor may be calculated in other modules without departing from the scope hereof. Activity manager 120 determines or adjusts toughness factor empirically by examining the performance of a significant number of athletes on the route or route segment in comparison those same athletes' performances on different routes and/or route segments, and may publish toughness factor to one or more databases (e.g., database 184).

In one example of operation, activity manager 120 is queried by the user for competitors on a given route segment, whereupon activity manager 120 takes the following actions: (a) searches for activity records of different database formats (e.g. FIT, GPS, TCX, etc.) to locate relevant records, and (b) isolates the activity record segments of interest by discarding unwanted portions of the activity record. In another example of operation, a first athlete records a FIT file of activity while running across the Golden Gate Bridge, starting from the Presidio, making his way up to the South end of the bridge and then across to the North end. A second athlete records a TCX format record of a run starting at the South end of the Golden Gate bridge and running across the bridge into the town of Sausalito. Each of the segments from the first, and second athletes, respectively, may be stored within activity record database 184. A third athlete may operate activity manager 120 to select an activity record of only a segment on the Golden Gate bridge, wherein activity manager 120 truncates the pre- and post-segment activities from each of the FIT file and the TCX format (from the first and second athletes) record to create at least one activity record that contains only the portion recorded while on the Golden Gate bridge.

Credibility auditor 110 assigns a credibility score to each activity record 132 stored within activity record database 130 by evaluating the activity record against a number of credibility criteria. Exemplary credibility criteria that increase the score include: the current route has a high percentage agreement of the position epochs to the published records, there is correlating heart rate data included, there is power meter data included, there are additional biometric measurements included (e.g. sweat, breathing rate, hydration, blood glucose, etc.), the activity record was encrypted by a known trusted source (list of trusted sources would need to be maintained), and the accuracy circle of the location data is small (e.g. within the race line for some minimum percentage of the segment). Exemplary credibility criteria that decrease the score include: there is evidence that the file has been edited or there is data missing, there is evidence that the file has been changed after the data was posted, and the accuracy circle of the location data is large. For example, a person who attached a speed sensor to their motorbike and then rode across the Golden Gate Bridge in record time would have an impressive pace, but low credibility. An athlete who was able to match the pace of the clever motorcyclist and also show bike power measurements and heart rate fluctuations that matched the physical exertion of the body would have a much higher credibility score.

Goal selection interface 116 allows a user of mobile device 102 to select a route segment and one or more goals for an activity. In one embodiment, goal selection interface 116 allows the user to define a segment by drawing a series of curves on a map, possibly with automatic “snap to grid” like functionality to coerce the curves to align with a known street, sidewalk, pathway, trail, etc. Goal selection interface 116 also allows the user to choose from a list of existing segments from published records within a certain geographic region of interest. The interface allows the user to specify goals using any number of different methods, including referring to a number of published records from other athletes, private or published records from the same athlete, or any method of producing a theoretical activity record for comparison using methods outlined below.

Activity manager 120 includes an activity record search engine that searches among multiple data sources for historical activity records matching one or more specified criteria including but not limited to: activity quotient 135, activity type, geographic location, elevation changes, minimum credibility score, refereed or sanctioned event (e.g. Banff Triathlon), day of the year, time of day, age of athlete, weight of athlete, sex of athlete, club or group affiliation (specific club membership, league division, school/grade, etc.), average heart rate, average pace, average cadence, ambient temperature, body mass index (BMI), average activity frequency, activity duration, activity intensity, distance traveled, and heart rate variability (HRV). For example, an athlete who is a member of Cochrane High School's Junior Football Team might want to compete against other members of that team, and so would to a query against that named club/group. Or a person who is just starting their journey into wellness will want to query for others of similar activity frequency/duration/intensity and body mass index. In one embodiment, activity manager 120 suggests search criteria to the user to help identify suitable mentors.

Activity record generator 118 cooperates with activity manager 120 to agglomerate and correlate historical activity records that meet certain criteria, and produce a goal pace profile 138 usable for comparison/pacing within mobile device 102. In one embodiment, activity record generator 118 and activity manager 120 are combined as a single module. Activity record generator 118 may employ any number of data processing methods to produce goal pace profile 138. An example of this would be to take the activity records that came as a result of a query and build a pace goal by averaging the pace of query results. Activity record processing methods are described in further detail below.

Pacing engine 112 operates to monitor the user's position/performance in real-time and compares that performance to goal pace profile 138 to generate status and coaching cues 136. Pacing engine 112 may also compare the user's performance against partial activity records, to produce status and coaching cues 136. For example if the athlete is competing against the performance of his previous run of the same segment, pacing engine 112 compares his position versus time into the activity against the previous activity record to determine if the athlete is ahead of or behind his or her previous performance. Pacing engine 112 may also examine current exertion levels within the context of the route, to check for sustainability issues. Thus, if an athlete is starting the segment at an unsustainable pace, given the overall exertion requirement of the segment, pacing engine 112 identifies the potential issue by looking at exertion data (pace, elevation, grade, wind speed) from recent historical activity records versus heart rate, HRV, and other biofeedback to determine if continuing the current level of exertion on the route is likely to be sustainable across the entire route, and generates status and coaching cues 136 to indicate that effort should be reduced.

User interface 122 operates to provide information within status and coaching cues 136 to the user. In one embodiment, user interface 122 communicates with interface device 160 via wireless interface 150. In an alternate embodiment, user interface 122 uses an interface (e.g., touch screen) built into mobile device 102, where for example mobile device 102 is a smart phone. Information within status and coaching cues 136 includes biofeedback, audio, visual, and other, as for example generated by pacing engine 112 during operation of mobile device 102. Interface device 160 may comprise one or more indicator lamps or other display elements, and/or one or more audio channels, and/or other biofeedback components that are responsive to control by user interface 122. Interface device 160 may represent one of a wrist watch display, a bicycle computer, and a heads-up/heads-down display.

Information within status and coaching cues 136 for presentation to the user via user interface device 160 may include: approaching segment start/end (e.g., “Approaching segment start in 30 seconds”), segment start (e.g., “Segment started”), segment end (e.g., “Segment completed. You finished ahead of the current first place finisher”), segment progress, elapsed time & distance (e.g., “You are two thirds of the way through the segment”), instantaneous & average heart rate, cadence, pace, and/or other biometrics, segment time remaining (e.g., “45 seconds remain in the segment”), leaderboard status: “You are eight seconds ahead of the current third place finisher, and four seconds behind the current second place finisher”), off-route (e.g., “You have strayed from the segment route”), and unsustainable exertion (e.g., “Your pace may be too high to maintain throughout the segment”).

Interface device 160 may also allow input from the user to user interface 122, via wireless interface 150, thereby allowing the user to control operation of mobile device 102 for example to start, stop, and/or pause the current activity. For example, interface device 160 may include one or more of capacitive touch button, a tactile button, a touch screen, and a tap detector (e.g., an accelerometer). In one embodiment, user interface 122 communicates with an application running on a separate mobile computation platform to display and receive control information via wireless interface 150. In another embodiment, interface device 160 is part of mobile device 102, such as when mobile device 102 is a smart phone or similar device.

Monitoring engine 114 operates in conjunction with biofeedback sensors 170 to monitor user biofeedback metrics such as one or more of speed, heart rate, fatigue, sweat, hydration, blood glucose, breathing rate, body temperature, as well as external conditions such as one or both of ambient temperature, and humidity. Monitoring engine 114 generates warnings (e.g., stored within status and coaching cues 136) for indicating apparent health or safety risks to the user based upon the length and difficulty of the selected route for example. For example, monitoring engine 114 may indicate one or more of: safety risk from excessive speed on a downhill grade, health risk from other factors such as elevated or erratic heart rate, extreme high/low body temperature, inadequate hydration level, and erratic or extreme breathing rate, and lack of movement (e.g., if the user has fallen or not moved for some prescribed time). Monitoring engine 114 may additionally cooperate with pacing engine 112 to generate pacing cues as discussed above.

Sharing interface 124 operates to publish one or more of recorded activity records 132, activity quotient 135, status updates, notes, challenges, photos, and friend lists to one or more of social media 190, blogs, circles, forums, text messages, e-mail messages, and so on. Thus, sharing interface 124 shares information on the user's participation and progress during an event, and may also invite others to join. In one example of operation, sharing interface 124 publishes changes to activity quotient 135 to social media 190 and/or a server 182. For example, upon completion of a segment in a selected activity, sharing interface 124 may post activity record 132, a record of the user's activity, and/or activity quotient 135, to server 182 located within cloud 180 for example, such that the user's information may be automatically and immediately updated on a published leaderboard. For example, an athlete might use this to notify their friends via social media of how they are doing in running a marathon, so their friends may cheer them on. Sharing interface 124 may then receive information from the social media such as a comment from a friend of the user and automatically relay this information in real-time to the user while the user is performing the activity. In other words, a notification of a user completion or progress of a route segment may be posted on social media to solicit “likes,” comments and other responses. These responses may then be relayed to the user in real-time such that the user is encouraged during the activity. Notification data includes: social media login credentials, an activity record database identifier and route segment identifier, the athlete's current position, real-time or average metrics, time of day, day of year, measured conditions, personal comments, photos, audio clips, motion video content, etc.

Sharing interface 124 may also cooperate with activity manager 120 to search one or more of the athlete's social networks to identify members of the social network that also have completed one or more segments similar to the athlete. If any are found, the athlete can send a notification (public of private) to share their result on the segment.

Where monitoring engine 114 detects a safety incident, sharing interface 124 may share this and other information of the user with first responders 192 via wireless interface 150. In one example of operation, sharing interface 124 notifies first responders 192 of an emergency situation detected by monitoring engine 114.

Exemplary Historical Activity Record Processing Methods

Build a Goal Pace Profile from a Specified Overall Pace Goal

In one embodiment, activity record generator 118 implements a method for generating goal pace profile 138 based upon a plurality of activity records 132 returned by activity manager 120 as a result of a search based upon a particular route segment for example. Activity record generator 118 generates an epoch-by-epoch goal pace profile within goal pace profile 138 by averaging, for each segment, information of each returned activity record. Thus, goal pace profile 138 contains an epoch-by-epoch average of the measured pace across all search results, interpolated where helpful, and normalized by dividing by the calculated average overall pace across all results. This normalized pace profile may then be used to build a goal pace profile by multiplying the normalized epoch-by-epoch goal pace by the overall goal pace.

Build a Goal Pace Profile from a Series of Waypoint-To-Waypoint Goals

In another embodiment, activity record generator 118 implements a method for generating goal pace profile 138 by identifying the waypoints of each segment and then determining a goal pace for each portion of the segment from one waypoint to the next.

Build a Goal Pace Profile from Examining Historical Lap Profiles

In another embodiment, activity record generator 118 implements a method for producing a lap-by-lap goal pace profile by examining the actual pace profiles from a query of historical activity records 132 returned by activity manager 120 for the selected route. For every matching activity record showing multiple laps of the same path loop, activity record generator 118 generates a lap-by-lap average of the measured pace across all returned results, then normalizes by dividing by the calculated average overall pace across all results. This normalized lap-by-lap pace profile may be used to build goal pace profile 138 by multiplying the normalized lap-by-lap goal pace by the overall goal pace. This lap profiling helps account for various ways a multiple lap route can elicit different performance levels from the competing athlete over the numerous laps due to body fatigue, route deterioration, or the final-lap sprint for example.

Build a Goal Pace Profile from an Average of a Defined Group or Club of Athletes

In another embodiment, activity record generator 118 implements a method for generating goal pace profile 138 by averaging returned best historical activity records of all members of a group (e.g., a club) for the same route. Goal pace profile 138 from an average of a defined group or club of athletes may additionally be altered such that the goal pace profile is better or worse than the average.

Build a Goal Pace Profile from an Average Pace of a Set of Similar Athletes

In another embodiment, activity record generator 118 implements a method for producing goal pace profile 138 by searching for historical activity records 132 of athletes similar to the user in terms of certain search criteria such as one or more of activity quotient 135, sex, age, weight, body mass index (BMI), HRV, and activity intensity/duration/frequency, for the same route, and then generating goal pace profile 138 based upon the pace profiles and average pace of search results.

Build a Goal Pace Profile Based on the Same Athlete's Prior Activities on Similar Terrain

In another embodiment, activity record generator 118 implements a method for generating goal pace profile 138 by searching for recent partial historical activity records from the same athlete on different routes, piecewise-matching elevation changes in the segments of the route, determining anticipated biofeedback responses using filtering techniques, and then summing the response data from the various matched or transformed pieces and adjusting by the toughness factors for the route segments. The resulting goal pace profile 138 estimates impact of the route on the pace and/or other biofeedback metric of the user.

Build a Goal Pace Profile Based on Similar Athletes' Prior Activities on Similar Terrain

In another embodiment, activity record generator 118 implements a method for generating goal pace profile 138 by searching for recent partial historical activity records from athletes similar to the user in terms of certain search criteria (e.g. activity quotient 135, sex, age, weight, BMI, HRV, activity frequency) on different routes. Activity record generator 118 then piecewise-matches elevation changes in the segments of the route and estimates the anticipated biofeedback responses using filtering techniques and then sums the matched segments or transformed pieces and adjusting by the toughness factors for the route segments. The toughness factor for each segment and/or route is based upon the relative performance of a plurality of athletes that have traversed that segment and/or route. The resulting goal pace profile 138 includes an expected impact of the route on pace and/or other biofeedback of the user. The toughness factor, or an adjustment thereto, for each segment and/or route may be published to one or more servers (e.g., server 182) and/or databases (e.g., database 184).

EXAMPLE EMBODIMENTS

Basic Ghost Pacer from Previous Activity

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon one or more previously recorded historical activity records from the same athlete on the same route.

Ghost Pacer Using a Friend's Historical Activity Record File

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon one or more previously recorded historical activity records provided by another person from the same route.

Ghost Pacer Using Another Person's Historical Activity Record File

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon one or more previously recorded historical activity records (e.g., activity records 132) by another person from the same route, through performing a search of published activity records using any number of criteria as described above.

Ghost Pacer Using a Random Person's Historical Activity Record File

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon one or more previously recorded historical activity records (e.g., activity records 132) by a random person from the same route, without disclosing any details of the random person chosen. At some later point in time, for gamification, the pacer might possibly share with the user some details of the person chosen, like a celebrity. The random nature of the pacer allows for a more fun and playful interaction with system 100.

“King of the Mountain” Style Ghost Pacer Drawing from a Published Leaderboard

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon the historical activity record (e.g., activity record 132) of the currently published records for that same route based on a real-time search of a given set of activity record databases based on the athlete's current location. For example, pacing engine 112 generates audible and/or visual indicators of relative position of a king of the mountain (KOM) ghost pacer (e.g., ahead or behind audibly announced in seconds and visually displayed using pace LEDs of interface device 160 and optionally color).

On-The-Fly Challenge for a Group of Athletes

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon real-time sharing and updates to the partial activity records of other group members following the same route at about the same time (allowing for staggered start times) based on real-time sharing and updates to the partial activity records of the group members.

“Lap Master” Style Pacer from a Published Leaderboard

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon the historical activity record of the currently published leader for a given lap of that same route based on a real-time search of a given set of activity record databases based on the athlete's chosen route. In one example of operation, pacing engine 112 compares the current lap against the same lap of a historical activity record, or compares against a previous lap of the current activity record.

“Coach Me” Style Pacer

In this embodiment, pacing engine 112 and/or monitoring engine 114 generates status and coaching cues 136 based upon an expected theoretical activity record for a given athlete on a given route, based upon a filtered or predicted activity record file of similar athletes' prior activities (similar or slightly better activity quotient 135) on similar terrain (e.g., similar toughness factor).

Other Embodiments

In one embodiment, activity record generator 118 generates theoretical activity record 134 based upon flat and/or average time from activity records 132 returned by a search then and adjusts (e.g., extrapolates) these times based upon one or more of a detected gradient at during the actual activity, the time into the current activity, length of the current hill, and so on to generate goal pace profile 138. In another embodiment, activity record generator 118 generates goal pace profile 138 by extrapolating from recorded similar activity of the user, and from other activities from other athletes.

In one embodiment, pacing engine 112 compares the current activity of the user to one or more activity records 132 of others. In another embodiment, pacing engine 112 compares the current activity of the user to activity records 132 received in real-time from server 182. In another embodiment, pacing engine 112 compares the current activity of the user to activity records 132 received in real-time from multiple servers.

In one embodiment, pacing engine 112 automatically (e.g., periodically and without prompting from the user) identifies a challenge (e.g., a hill) within a current proximity of the user and automatically generates (e.g., by searching for similar activities within other activity records 132) goal pace profile 138 based upon that activity such that the user receives status and coaching cues. For example, if the user runs a route that includes three published segments, system 100 presents each segment to the athlete in real-time as the user nears the start point. The user may choose to compete or be coached from each of those three segments, and/or post his/her activity record for each segment upon completion. In this example, the user may not have planned to run any published segments, but changed their route in response to prompting from the system in order to include three published segments.

In another embodiment, pacing engine 112 compares the current activity of the user to one or more activity records 132 representative of a repeating track, or specified track.

System 100 allows the user to race against anybody that has one or more activity records 132 stored within activity record database 130 and/or activity record database 184. For example, where activity record database 184 stores activity records 132 recorded by members of a club, the user may select and load one or more of these activity records into activity record database 130 within mobile device 102 such that pacing engine 112 may compare the user activity against these recorded activities.

In another embodiment, the user may interact with interface device 160 to generate goal pace profile 138 containing a challenge, and then share (e.g., using sharing interface 124) that challenge with other people (such as people that the user is currently running or cycling with).

FIGS. 2A and 2B show exemplary social media screen shots 200, 250 illustrating information shared by sharing interface 124 of mobile device 102 of FIG. 1. In one embodiment, sharing interface 124 sends one or more of social media login credentials, an activity record database identifier (e.g., “Strava”, “MapMyRun”), a segment identifier for indexing within activity record database 184, a current position of the user, current real-time and/or averaged biofeedback metrics, current goal pace and/or current rank and/or relative position against chosen pacers, time of day, day of year, any data on measured conditions such as ambient temperature, and personal comments, photographs, audio clips, motion video content, etc., provided by the user. Screen shot 200 is displayed from information received from sharing interface 124 when a segment is completed. Screen shot 250 is displayed from information received from sharing interface 124 while a segment is in-progress, illustrating a current position 252 of the user.

FIG. 3 is a flowchart illustrating one exemplary method 300 for location-based pacing with biofeedback. Method 300 is for example implemented within one or more of activity record generator 118, activity manager 120, user interface 122, pacing engine 112, and goal selection interface 116 of mobile device 102, FIG. 1.

In step 302, method 300 determines a goal pace profile based upon historical activity records of one or more athletes and/or a theoretical activity record, the goal pace profile defining a goal of a user. In one example of step 302, activity manager 120 searches for one or more activity records 132 corresponding to one or more athletes and activity record generator 118 generates goal pace profile 138 based upon the one or more activity records 132 and/or theoretical activity record 134.

In step 304, method 300 determines a current activity of the user. In one example of step 304, locator 140 and one or more biofeedback sensors 170 determine a current activity of a user of mobile device 102.

In step 306, method 300 compares the current activity to the goal pace profile to generate status and coaching cues. In one example of step 306, pacing engine 114 compares activity of the user of mobile device 102 to goal pace profile 138 and generates status and coaching cues 136. In step 308, method 300 sends the status and coaching cues to a notification and cueing human interface device that is visible to the user. In one example of step 308, user interface 122 sends status and coaching cues 136 to interface device 160 via wireless interface 150.

Steps 310 through 314 are optional. If included, in step 310, method 300 publishes the status. In one example of step 310, sharing interface 124 publishes the status of step 306 to social media 190. If included, in step 312, method 300 receives a response to the publication of step 310. In one example of step 312, sharing interface 124 receives “likes” and/or comments from social media 190. If included, in step 314, method 300 indicates the responses to the user. In one example of step 314, sharing interface 124 cooperates with user interface 122 to indicate the “likes” and/or comments with the user of mobile device 102.

Steps 304 through 314 repeat, as indicated by dashed outline 320, to provide status, coaching cues, and optional encouragement, to the user of mobile device 102 until the activity is stopped.

In step 316, method 300 posts the completed activity record to the server. In one example of step 316, activity manager 120 posts activity record 132 to activity record database 184 of server 182. Steps 302 through 316 may repeat for additional segments. Steps of method 300 may be reordered without departing from the scope hereof.

FIG. 4 is a map 400 illustrating route segments 402 of an exemplary route 401 to be taken by a user of system 100 of FIG. 1. Route 401 has three route segments 402(1)-(3), but may have more or fewer without departing from the scope hereof. In the example of FIG. 4, segment 402(1) starts at a location 404(A) and ends at a location 404(B); segment 402(2) starts at location 404(B) and ends at a location 404(C); and segment 402(3) starts at location 404(C) and ends a location 404(A). Although segments 402 are contiguous and completely cover route 401, route segments 402 may form only part of a route 401 and need not be contiguous. That is, each segment 402 may be individually selected to be a part of route 401 and may or may not adjoin and/or overlap with other route segments. Each segment 402 may also have an associated start direction 406 that indicates an expected movement direction of device 102 when starting that segment. In the example of FIG. 4, movement directions are indicated by arrows, wherein segment 402(1) has a direction 406(1), segment 402(2) has a direction 406(2), and segment 402(3) has a direction 406(3).

FIG. 5 shows pacing engine 112 of FIG. 1 in further exemplary detail, illustrating modules for pacing each selected route segment. Pacing engine 112 is shown with a segment start detector 502, a segment distance tracker 504, a relative position calculator 506, a segment end detector 508, and optionally a segment path tracker 510. Segment start detector 502 operates to detect when device 102 passes through a segment starting point (e.g., location 404(A) for segment 402(1)). In one example of operation, segment start detector 502 first locates a nearest segment starting location within goal pace profile 138, and then determined when device 102 passes through the segment starting location.

Segment start detector 502 may be configured with a configurable trigger zone area that defines an area proximate the segment start location within which device 102 is considered at the start of the segment. In one example, the trigger zone area is defined as a circle having a radius of 100 yards and centered at the coordinates provided for the segment start location. In another example, the trigger zone area is defined as a rectangle of 15 yards by 30 yards, centered at the coordinates provided for the segment start location, and orthogonally aligned with start direction 406. Other sizes, shapes, and orientations may be used without departing from the scope hereof. In one embodiment, a user defines the trigger zone interactively when defining segment 402 using a map, wherein the trigger zone is indicated on that map.

Segment start detector 502 may also determine a direction of movement of device 102 (e.g., calculated from latitude and longitude values of last two coordinates determined for device 102) and compare that determined direction to start direction 406 for segment 402, wherein segment start detector 502 may generate a notification to the user if device 102 is heading in a wrong direction. In one embodiment, segment start detector 502 does not detect a start of segment unless the user is within the trigger zone area and with a heading corresponding to start direction 406. Once a segment start is detected, segment start detector 502 resets a segment time 552 that is incremented in real-time to provide an indication of time into the segment.

Segment distance tracker 504 determines a segment distance 554 as the distance travelled by device 102 since segment start was indicated by segment start detector 502. Segment distance 554 is an accumulated distance determined from coordinates periodically obtained by locator 140 as device 102 travels along segment 402.

In one embodiment, relative position calculator 506 determines a target time 558 of the “ghost pacer” to reach segment distance 554 based upon activity records 132 and/or goal pace profile 138. Pacing engine 112 may then indicate (e.g., visually and/or audibly) the time difference between the user of device 102 and the ghost pacer, such as “three seconds behind” for example.

In an alternative embodiment, relative position calculator 506 determines a target distance 556 within segment 402 based upon goal pace profile 138 and a segment time 552. For example, where goal pace profile 138 is based upon one or more activity records 132, relative position calculator 506 uses activity records 132 and segment time 552 to calculate target distance 556 representing a distance travelled into segment 402 by the “ghost pacer” corresponding to goal pace profile 138. Calculator 506 then compares segment distance 554 to target distance 556 to determine a relative distance between the user of device 102 and the athlete associated with goal pace profile 138. Pacing engine 112 may then indicate (e.g., visually and/or audibly) the relative distance to the user of device 102.

Segment end detector 508 operates to detect when a current segment 402 is completed. In one embodiment, detector 508 determines the end of the current segment when segment distance 554 is equal to and/or greater than a defined distance of segment 402. In an alternative embodiment, detector 508 determines the end of the current segment when a current location of device 102 is within an end zone of segment 402.

In one embodiment, pacing engine 112 includes optional segment path tracker 510 that determines a minimum distance between device 102 and an indicated path/track within goal pace profile 138 and/or activity records 132. For example, activity records 132 include information (e.g., coordinates and/or vectors) that defines a path/track of segment 402. Tracker 510 then periodically determines a distance between device 102 and the defined path/track. Tracker 510 may generate a warning when device 102 is further than a threshold distance from the path/track of the current segment 402. Tracker 510 may also cancel a current segment when the user diverges by more than a certain distance from the path/track of the segment. Where segments 402 overlap, device 102 may track multiple segments simultaneously.

During operation, the user may cancel a current segment, wherein segment tracking terminates and device 102 returns to providing biometric feedback to the user without comparison to goal pace profile 138. In one embodiment, pacing engine 112 cancels a current segment automatically when deviation from the path of the current segment is greater than a threshold amount. Pacing engine 112 may then start looking for a subsequent segment start (e.g., using segment start detector 502) and may include a “de-bounce” function that prevents the same segment from automatically restarting.

In one example of operation, a user configures mobile device 102 to provide biometric feedback for segment 402(1). Activity manager 120 automatically selects and downloads a corresponding activity record 132 from activity record database 184, as described above. Pacing engine 112 then detects a start of the segment (e.g., using segment start detector 502, as described above), and provides, during the segment, feedback to the user of performance relative to a selected ghost pacer.

Where the user of device 102 has not selected a ghost pacer (i.e., has not identified activity records 132) for a particular segment 402, pacing engine 112 provides performance feedback in the form of percentage of the segment that is complete. Thus the user receives feedback on determined progress through the segment.

In one embodiment, pacing engine 112 generates audio output to indicate one or more of: approaching start, relative position (e.g., ahead/behind), percentage completed milestones updates when in a segment, encouragement (e.g., “Go! Go! Go!”) when certain percentages of the segment remain (e.g., five percent of distance remaining in the segment), and when the segment completed. When not in a segment, pacing engine 112 indicates one or more of heart-rate, speed, and temperature.

In one embodiment, pacing engine 112 and/or monitoring engine 114 operates to (a) check the user's speed, and when a certain speed has been exceeded for a certain amount of time, and (b) generate an alert to indicate to the user that certain safety conditions have been exceeded. For example, when one or more of heart-rate, breathing rate, and speed is too high, pacing engine 112 and/or monitoring engine 114 generate an audible signal indicating the user exertion levels are too high. For example, a GPS receiver may be used to measure speed when the GPS signal accuracy is sufficiently high. When GPS accuracy is not sufficient, monitoring engine 114 and/or pacing engine 112 may use other means (e.g., one or more of a foot-pod, a bike speed/cadence sensor, and so on, to determine when the user is operating outside of safe conditions.

When device 102 is implemented as a smart phone, pacing engine 112 may also provide visual updates to displayed maps to indicate KOM ghost pacer for the current segment. For example, pacing engine 112 may display ahead/behind polylines of the user and a partner, as well as visual and/or audio indications of the KOM ghost pacer (such as ahead/behind in seconds and/or color displays). Pacing engine 112 may also display live statistics of monitored activity, with expandable large views for selected statistics to facilitate easier viewing by the user during activity.

Device 102 may also provide a demo/debug test mode that allows the user to rewind and/or play back activity records 132 and/or .fit file activity to simulate a live activity. For example, device 102 may generate output to control interface device 160 (e.g., audio and/or visual feedback devices), and provide live map and live statistics to simulate activity in real time. Device 102 may also allow play back of activity at increased (e.g., ten-times and one-hundred-times) speed to allow the user to ‘jump’ to specific locations of the stored activity.

FIG. 6 is a flowchart illustrating one exemplary method 600 for segment based pacing with biofeedback. Method 600 is for example implemented within pacing engine 112 of device 102.

In step 602, method 600 receives a segment selection. In one example of step 602, a user interacts with device 102 to select segment 402(1). In step 604, method 600 detects a start of segment. In one example of step 604, segment start detector 502 determines that device 102 is located within a start zone area of segment 402(1) and heading in a direction corresponding to direction 406(1), and therefore indicates start of segment 402(1). In step 606, method 600 resets the segment time and distance. In one example of step 606, segment start detector 502 sets segment time 552 and segment distance 554 to zero. In step 608, method 600 accumulates distance into segment. In one example of step 608, segment distance tracker 504 determines distance moved by device 102 based upon periodically determined coordinates from locator 140 and updates segment distance 554. In step 610, method 600 calculates position relative to goal pacer. In one example of step 610, relative position calculator 506 determines target time 558 of the “ghost pacer” to reach segment distance 554 based upon activity records 132 and/or goal pace profile 138. In step 612, method 600 indicates the relative position to the user. In one example of step 612, pacing engine 112 sends audible signals to the user of device 102 to indicate that they are two seconds behind the ghost pacer for segment 402(1).

Steps 614 and 616 are optional. If included, in step 614, method 600 determines encouragement indications. In one example of step 614, pacing engine 112 determines, based upon segment distance 554 as a portion of total distance of segment 402(1), “Go! Go! Go!” for the encouragement indication. In step 616, method 600 provides encouragement to the user. In one example of step 616, pacing engine 112 sends “Go! Go! Go!” to an audio interface device 160.

Step 618 is a decision. If, in step 618, method 600 determines that the end of the segment is reached, method 600 continues with step 620; otherwise method 600 continues with step 608. Steps 608 through 618 repeat until the end of the segment is reached. In one example of step 618, segment end detector 508 detects when the end of the segment is reached and method 600 continues with step 620.

In step 620, method 600 indicates the end of the segment. In one example of step 620, pacing engine 112 generates and sends an audio message saying “Great job! Segment complete!” to the user of device 102.

Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall therebetween. 

What is claimed is:
 1. A method for location-based athlete pacing with biofeedback, comprising: determining a goal pace profile defining a performance goal of a user for a route segment; determining, within a mobile computing device, a performance of the user; and comparing the performance to the goal pace profile to generate real-time status and coaching cues during the performance.
 2. The method of claim 1, the step of comparing comprising: determining a segment time indicative of a period for the route segment; determining a segment distance indicative of a distance traveled by the user in the route segment; and determining a target time based upon the goal pace profile and the segment distance; wherein the step of comparing comprising comparing the target time to the segment time to generate the real-time status and the coaching cues.
 3. The method of claim 1, the step of determining the goal pace profile comprising: selecting an athlete based upon input from the user; determining a historical activity record of the athlete and corresponding to the route segment; and processing the historical activity record to generate the goal pace profile.
 4. The method of claim 3, the athlete comprising more than one athlete, wherein the step of processing comprising processing historical activity records of each athlete to generate the goal pace profile.
 5. The method of claim 3, wherein the athlete is the user.
 6. The method of claim 3, the athlete being suggested for selection based upon having a similar or slightly higher activity quotient as compared to an activity quotient of the user.
 7. The method of claim 3, the step of determining the goal pace profile comprising automatically selecting and retrieving the historical activity record after starting the route segment.
 8. The method of claim 3, wherein the athlete is selected using a social network and based upon the route segment.
 9. The method of claim 8, further comprising sending a notification to the social network upon completion of the route segment, the notification comprising one or both of an identifier of a new activity record created from the performance, and an identifier of the route segment.
 10. The method of claim 3, wherein the athlete is selected based upon similarity, between the user and the athlete, of one or more of activity quotient, route segment terrain, and average pace profile.
 11. The method of claim 1, the step of determining the performance of the user being based upon one or more of: a global positioning system (GPS), cellular beacon identifiers, cellular beacon signal strength, GPS pseudolites, WiFi received signal strength indication (RSSI), any wireless network of surveyed nodes, pool turnaround, radio-frequency identification (RFID) sensors (e.g. ChampionChip), stride or wheel rotation sensors, altimeter, and compass.
 12. The method of claim 1, the determined performance comprising sensed biometrics of the user.
 13. The method of claim 1, further comprising sending the status and coaching cues from the mobile computing device to an interface device observable by the user.
 14. The method of claim 13, the coaching cues comprising indication of at least one of approach of start of the route segment, approach of end of the route segment, and relative position of the user to a ghost pacer determined from the goal pace profile.
 15. The method of claim 1, the goal pace profile being generated automatically for the route segment based upon one or more of a detected gradient of the route segment, time into the route segment, and length of a hill in the route segment.
 16. The method of claim 1, further comprising: recording the performance of the user as a new activity record; determining a credibility score for the new activity record based upon completeness, correctness, and authenticity of the information within the new activity record.
 17. The method of claim 16, further comprising sending the credibility score to one or both of (a) a server storing the new activity record and (b) social media.
 18. The method of claim 1, further comprising generating and publishing a toughness factor indicative of a level of toughness inherent to terrain of the route segment and independent of elevation profile.
 19. A software product comprising instructions, stored on non-transitory computer-readable media, wherein the instructions, when executed by a digital processor, perform steps for location-based athlete pacing with biofeedback, comprising: instructions for determining a goal pace profile defining a performance goal of a user for a route segment; instructions for determining a performance of the user; instructions for determining a segment time indicative of a period for the route segment; instructions for determining a segment distance indicative of a distance traveled by the user in the rout segment; instructions for determining a target time based upon the goal pace profile and the segment distance; and instructions for comparing the target time to the segment time to generate real-time status and coaching cues.
 20. A system for location-based athlete pacing with biofeedback, comprising: a processor; a location device for determining a location of the system; a non-transitory memory for storing machine readable instructions that when executed by the processor perform the steps of: determining a goal pace profile based upon a historical activity record of an athlete, the goal pace profile defining a performance goal of a user of the system; determining a performance of the user based upon the location; and comparing the performance to the goal pace profile to generate real-time status and coaching cues for the user during the performance. 